| 
	1100
   | 
  
	  How can I advance to the next line, once the user presses the ENTER key 
	
		
			
 
 
// KeyDown event - Occurs when the user presses a key while an object has the focus.
procedure TWinForm1.AxGrid1_KeyDownEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_KeyDownEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'KeyCode Before:' );
		OutputDebugString( e.keyCode );
		e.keyCode := FormatABC('value = 13 ? 40 : value',TObject(e.keyCode),Nil,Nil);
		OutputDebugString( 'KeyCode After:' );
		OutputDebugString( e.keyCode );
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	with Columns do
	begin
		with (Add('A') as EXGRIDLib.Column).Editor do
		begin
			Appearance := EXGRIDLib.InplaceAppearanceEnum.EtchedApp;
			EditType := EXGRIDLib.EditTypeEnum.EditType;
		end;
		with (Add('B') as EXGRIDLib.Column).Editor do
		begin
			Appearance := EXGRIDLib.InplaceAppearanceEnum.EtchedApp;
			EditType := EXGRIDLib.EditTypeEnum.EditType;
		end;
	end;
	with Items do
	begin
		h0 := AddItem('Item A.1');
		CellValue[TObject(h0),TObject(1)] := 'Item B.1';
		h0 := AddItem('Item A.2');
		CellValue[TObject(h0),TObject(1)] := 'Item B.2';
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1099
   | 
  
	  I am using AddNew to add new records, but I can not see them into the control 
	
		
			
 
 
// ButtonClick event - Occurs when user clicks on the cell's button.
procedure TWinForm1.AxGrid1_ButtonClick(sender: System.Object; e: AxEXGRIDLib._IGridEvents_ButtonClickEvent);
begin
	with AxGrid1 do
	begin
		with (DataSource as ADODB.Recordset) do
		begin
			AddNew(Nil,Nil);
			Fields.Item['A'].Value := 'new A';
			Fields.Item['B'].Value := 'new B';
			Update(Nil,Nil);
		end;
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Fields.Append('A',8,Nil,Nil,Nil);
		Fields.Append('B',8,Nil,Nil,Nil);
		Open(Nil,Nil,Nil,Nil,Nil);
		AddNew(Nil,Nil);
		Fields.Item['A'].Value := 'Item A.1';
		Fields.Item['B'].Value := 'Item B.1';
		Update(Nil,Nil);
		AddNew(Nil,Nil);
		Fields.Item['A'].Value := 'Item A.2';
		Fields.Item['B'].Value := 'Item B.2';
		Update(Nil,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	with Items do
	begin
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exTop] := 1;
		h := LockedItem[EXGRIDLib.VAlignmentEnum.exTop,0];
		ItemDivider[h] := 0;
		CellHasButton[TObject(h),TObject(0)] := True;
		CellValue[TObject(h),TObject(0)] := 'AddNew';
		CellHAlignment[TObject(h),TObject(0)] := EXGRIDLib.AlignmentEnum.CenterAlignment;
	end;
	DetectAddNew := True;
	DetectDelete := True;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1098
   | 
  
	  How can I create a new ADO recordset 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Fields.Append('A',8,Nil,Nil,Nil);
		Fields.Append('B',8,Nil,Nil,Nil);
		Open(Nil,Nil,Nil,Nil,Nil);
		AddNew(Nil,Nil);
		Fields.Item['A'].Value := 'Item A.1';
		Fields.Item['B'].Value := 'Item B.1';
		Update(Nil,Nil);
		AddNew(Nil,Nil);
		Fields.Item['A'].Value := 'Item A.2';
		Fields.Item['B'].Value := 'Item B.2';
		Update(Nil,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1097
   | 
  
	  Do do I get the DAO version I have installed 
	
		
			
 
 
with AxGrid1 do
begin
	OutputDebugString( (ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.35')) as DAO.PrivDBEngine).Version );
	OutputDebugString( (ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.36')) as DAO.PrivDBEngine).Version );
	OutputDebugString( (ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.120')) as DAO.PrivDBEngine).Version );
end
			 
		 
	 
   | 
  | 
	1096
   | 
  
	  How do I get a list of interfaces the object implemenets 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	with (ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.120')) as DAO.PrivDBEngine) do
	begin
		rs := (OpenDatabase('C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',Nil,Nil,Nil).OpenRecordset('Orders',Nil,Nil,Nil) as DAO.Recordset2);
	end;
	OutputDebugString( (ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.PropertiesList')) as Object) );
	DataSource := (rs as DAO.Recordset2);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1095
   | 
  
	  Do do I get the ADO version I have installed 
	
		
			
 
 
with AxGrid1 do
begin
	OutputDebugString( 'ADO Version:' );
	OutputDebugString( (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Connection')) as ADODB.Connection).Version );
end
			 
		 
	 
   | 
  | 
	1094
   | 
  
	  DAO, ACCDB, 120  
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	with (ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.120')) as DAO.PrivDBEngine) do
	begin
		rs := (OpenDatabase('C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',Nil,Nil,Nil).OpenRecordset('Orders',Nil,Nil,Nil) as DAO.Recordset2);
	end;
	DataSource := (rs as DAO.Recordset2);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1093
   | 
  
	  DAO, MDB, 120  
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	with (ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.120')) as DAO.PrivDBEngine) do
	begin
		rs := (OpenDatabase('C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',Nil,Nil,Nil).OpenRecordset('Orders',Nil,Nil,Nil) as DAO.Recordset2);
	end;
	DataSource := (rs as DAO.Recordset2);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1092
   | 
  
	  DAO, MDB  
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	with (ComObj.CreateComObject(ComObj.ProgIDToClassID('DAO.DBEngine.36')) as DAO.PrivDBEngine) do
	begin
		rs := OpenDatabase('C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.mdb',Nil,Nil,Nil).OpenRecordset('Orders',Nil,Nil,Nil);
	end;
	DataSource := (rs as DAO.Recordset);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1091
   | 
  
	  ADODB, ACCDB, x64  
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',1,1,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1090
   | 
  
	  ADOR, ACCDB  
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1089
   | 
  
	  ADODB, MDB  
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1088
   | 
  
	  ADOR, MDB  
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := False;
	rs := (ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset')) as ADODB.Recordset);
	with rs do
	begin
		Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExGrid\Sample\Access\misc.accdb',3,3,Nil);
	end;
	DataSource := (rs as ADODB.Recordset);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1087
   | 
  
	  How can I display the row on multiple lines (excrd) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	SelBackMode := EXGRIDLib.BackModeEnum.exTransparent;
	with (Columns.Add('Default') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellFormatLevel] := '[b=0]60;1[b=15]:60,((20;"<fgcolor=808080>Dateigröße"[b=1][a=2]:120,2[b=15])/(20;"<fgcolor=808080>Erstellt am"[a=2]:120,3[b=15])/' + 
	'(20;"<fgcolor=808080>Zuletzt bearbeitet"[b=4][a=2]:120,4[b=15]))';
		AllowSort := False;
	end;
	(Columns.Add(1) as EXGRIDLib.Column).Visible := False;
	with (Columns.Add(2) as EXGRIDLib.Column) do
	begin
		Visible := False;
		Editor.EditType := EXGRIDLib.EditTypeEnum.EditType;
		FormatColumn := '1 index `A-Z`';
	end;
	with (Columns.Add(3) as EXGRIDLib.Column) do
	begin
		Visible := False;
		Editor.EditType := EXGRIDLib.EditTypeEnum.EditType;
		FormatColumn := '1 index ``';
	end;
	with (Columns.Add(4) as EXGRIDLib.Column) do
	begin
		Visible := False;
		Editor.EditType := EXGRIDLib.EditTypeEnum.EditType;
		FormatColumn := 'date(``)';
	end;
	DefaultItemHeight := 48;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	GridLineStyle := EXGRIDLib.GridLinesStyleEnum.exGridLinesSolid;
	set_ViewModeOption(EXGRIDLib.ViewModeEnum.exTableView,EXGRIDLib.ViewModeOptionEnum.exBorderWidth,TObject(1));
	set_ViewModeOption(EXGRIDLib.ViewModeEnum.exTableView,EXGRIDLib.ViewModeOptionEnum.exBorderHeight,TObject(1));
	with Items do
	begin
		CellValue[TObject(AddItem('')),TObject(1)] := 'One';
		CellValue[TObject(AddItem('')),TObject(1)] := 'Two';
		CellValue[TObject(AddItem('')),TObject(1)] := 'Three';
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1086
   | 
  
	  Type of wraps the cell's caption support (Sample 2) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	HeaderSingleLine := False;
	HeaderHeight := 36;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	ColumnAutoResize := False;
	ScrollBySingleLine := True;
	with Columns do
	begin
		with (Add('Single-Line (exCaptionSingleLine)') as EXGRIDLib.Column) do
		begin
			Width := 96;
			Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
			Def[EXGRIDLib.DefColumnEnum.exCellSingleLine] := TObject(-1);
		end;
		with (Add('Word-Wrap (exCaptionWordWrap)') as EXGRIDLib.Column) do
		begin
			Width := 96;
			Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
			Def[EXGRIDLib.DefColumnEnum.exCellSingleLine] := TObject(0);
			FormatColumn := '%0';
		end;
		with (Add('Break-Wrap (exCaptionBreakWrap)') as EXGRIDLib.Column) do
		begin
			Width := 96;
			Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
			Def[EXGRIDLib.DefColumnEnum.exCellSingleLine] := TObject(1);
			FormatColumn := '%0';
		end;
	end;
	with Items do
	begin
		AddItem('This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.');
		AddItem('This is the <b>first</b> line.\r\nThis is the <b>second</b> line.\r\nThis is the <b>third</b> line.');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1085
   | 
  
	  Type of wraps the cell's caption support (Sample 1) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	HeaderSingleLine := False;
	HeaderHeight := 36;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	ColumnAutoResize := False;
	ScrollBySingleLine := True;
	(Columns.Add('Default') as EXGRIDLib.Column).Width := 128;
	with Items do
	begin
		h := AddItem('This is the first line.\r\nThis is the second line.\r\nThis is the third line.');
		h := AddItem('This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.');
		CellValueFormat[TObject(h),TObject(0)] := EXGRIDLib.ValueFormatEnum.exHTML;
		h := AddItem('This is the first line.\r\nThis is the second line.\r\nThis is the third line.');
		CellSingleLine[TObject(h),TObject(0)] := EXGRIDLib.CellSingleLineEnum.exCaptionWordWrap;
		h := AddItem('This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.');
		CellValueFormat[TObject(h),TObject(0)] := EXGRIDLib.ValueFormatEnum.exHTML;
		CellSingleLine[TObject(h),TObject(0)] := EXGRIDLib.CellSingleLineEnum.exCaptionWordWrap;
		h := AddItem('This is the first line.\r\nThis is the second line.\r\nThis is the third line.');
		CellSingleLine[TObject(h),TObject(0)] := EXGRIDLib.CellSingleLineEnum.exCaptionBreakWrap;
		h := AddItem('This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line.');
		CellValueFormat[TObject(h),TObject(0)] := EXGRIDLib.ValueFormatEnum.exHTML;
		CellSingleLine[TObject(h),TObject(0)] := EXGRIDLib.CellSingleLineEnum.exCaptionBreakWrap;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1084
   | 
  
	  Can I break the cell's caption using the line break <br> or \r\n (Sample 2) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	ColumnAutoResize := False;
	ScrollBySingleLine := True;
	(Columns.Add('Default') as EXGRIDLib.Column).Width := 128;
	with Items do
	begin
		CellSingleLine[TObject(AddItem('This is the first line.\r\nThis is the second line.\r\nThis is the third line.')),TObject(0)] := EXGRIDLib.CellSingleLineEnum.exCaptionBreakWrap;
		AddItem('This is the first line.\r\nThis is the second line.\r\nThis is the third line.');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1083
   | 
  
	  Can I break the cell's caption using the line break <br> or \r\n (Sample 1) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exRowLines;
	GridLineStyle := EXGRIDLib.GridLinesStyleEnum.exGridLinesGeometric;
	ColumnAutoResize := False;
	ScrollBySingleLine := True;
	with (Columns.Add('Default') as EXGRIDLib.Column) do
	begin
		Width := 196;
		Def[EXGRIDLib.DefColumnEnum.exCellSingleLine] := TObject(1);
	end;
	with Items do
	begin
		h := AddItem('<solidline><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;properties>+</a><br><solidline>+ balance: Currency = 0</so' + 
	'lidline><br>+ deposit(amount: Currency)<r><a ;methods>+</a><br>+ withdraw(amount: Currency)');
		CellValueFormat[TObject(h),TObject(0)] := EXGRIDLib.ValueFormatEnum.exHTML;
		AddItem('This is the first line.\r\nThis is the second line.\r\nThis is the third line.');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1082
   | 
  
	  How can I change the visual appearance/color of the Filter For ... field 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	BackColorHeader := Color.FromArgb(1,0,0);
	ForeColorHeader := Color.FromArgb(255,255,255);
	set_Background(EXGRIDLib.BackgroundPartEnum.exBackColorFilter,BackColorHeader);
	set_Background(EXGRIDLib.BackgroundPartEnum.exForeColorFilter,ForeColorHeader);
	set_Background(EXGRIDLib.BackgroundPartEnum.exHeaderFilterBarButton,$f0f0f0);
	set_Background(EXGRIDLib.BackgroundPartEnum.exCursorHoverColumn,$ffffffff);
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Bump;
	with (Columns.Add('Items') as EXGRIDLib.Column) do
	begin
		FilterOnType := True;
		DisplayFilterButton := True;
		FilterList := EXGRIDLib.FilterListEnum.exNoItems;
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1081
   | 
  
	  How can I display the cell's caption without spaces on both sides 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	with (Columns.Add('Default') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		FormatColumn := '((trim(value) replace `   ` with ` `) replace `  ` with ` `) replace ` ` with `<bgcolor=FF0000> </bgcolor>`';
	end;
	with Items do
	begin
		AddItem('');
		AddItem('Item A');
		AddItem('    Item B');
		AddItem('        Item   C    ');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1080
   | 
  
	  How can I highlight the spaces within the column (sample 2) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	with (Columns.Add('Default') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		FormatColumn := '`''` + ( value replace ` ` with `_` ) + `''`';
	end;
	with Items do
	begin
		AddItem('');
		AddItem('Item A');
		AddItem('    Item B');
		AddItem('        Item   C    ');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1079
   | 
  
	  How can I highlight the spaces within the column (sample 1) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	with (Columns.Add('Default') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		FormatColumn := 'len(value) = 0 ? `<bgcolor=FF0000> </bgcolor>` : ( value replace ` ` with `<bgcolor=FF0000> </bgcolor>` )';
	end;
	with Items do
	begin
		AddItem('');
		AddItem('Item A');
		AddItem('    Item B');
		AddItem('        Item   C    ');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1078
   | 
  
	  How can I change the visual aspect of the drop down filter-calendar 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	set_Background(EXGRIDLib.BackgroundPartEnum.exBackColorFilter,$10000);
	set_Background(EXGRIDLib.BackgroundPartEnum.exForeColorFilter,$ffffff);
	set_Background(EXGRIDLib.BackgroundPartEnum.exDateScrollRange,$ffffff);
	set_Background(EXGRIDLib.BackgroundPartEnum.exDateHeader,get_Background(EXGRIDLib.BackgroundPartEnum.exBackColorFilter));
	set_Background(EXGRIDLib.BackgroundPartEnum.exDateScrollThumb,$808080);
	with (Columns.Add('Date') as EXGRIDLib.Column) do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exDate;
		DisplayFilterButton := True;
		DisplayFilterDate := True;
		DisplayFilterPattern := False;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1077
   | 
  
	  How can I hide the filter bar description 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Filter') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'B';
	end;
	with Items do
	begin
		AddItem('A');
		AddItem('B');
		AddItem('C');
	end;
	ApplyFilter();
	FilterBarHeight := 0;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1076
   | 
  
	  Export Data in HTML format 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	BackColorAlternate := Color.FromArgb(240,240,240);
	DrawGridLines := EXGRIDLib.GridLinesEnum.exAllLines;
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := '(( ( value replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `' + 
	'[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match' + 
	'itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcoun' + 
	't + ` item(s)`) )))';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCompact) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarShowCloseIfRequired) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarSingleLine) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	FilterBarPromptType := EXGRIDLib.FilterPromptEnum.exFilterPromptContainsAny;
	with ConditionalFormats do
	begin
		Add('%0 like `*parent*`','parent').BackColor := $c0c0c0;
		with Add('%0 like `*child*`','child') do
		begin
			ForeColor := $8080ff;
			ApplyTo := EXGRIDLib.FormatApplyToEnum.exFormatToColumns;
		end;
		with Add('%0 like `*B*`','b') do
		begin
			ForeColor := $ff0000;
			Bold := True;
			Italic := True;
			ApplyTo := EXGRIDLib.FormatApplyToEnum.exFormatToColumns;
		end;
	end;
	with Columns do
	begin
		with (Add('Value') as EXGRIDLib.Column) do
		begin
			Width := 128;
			HTMLCaption := '<b>VA</b><r>sko';
		end;
		with (Add('APos') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 apos ``';
			AllowSort := False;
			Def[EXGRIDLib.DefColumnEnum.exCellBackColor] := TObject(15790320);
			Def[EXGRIDLib.DefColumnEnum.exCellForeColor] := TObject(8421504);
			Def[EXGRIDLib.DefColumnEnum.exHeaderForeColor] := Def[EXGRIDLib.DefColumnEnum.exCellForeColor];
			Position := 0;
		end;
		with (Add('RPos') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 rpos ``';
			AllowSort := False;
			Position := 1;
		end;
		with (Add('Index') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 index ``';
			DisplayFilterButton := True;
			FilterList := EXGRIDLib.FilterListEnum.exShowCheckBox;
			Position := 2;
		end;
		with (Add('Data 1') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 index `A-Z`';
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		end;
		with (Add('Data 2') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 index `AB` replace `A` with `<off -4>A</off>`';
			Def[EXGRIDLib.DefColumnEnum.exCellSingleLine] := TObject(False);
			Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
			Def[EXGRIDLib.DefColumnEnum.exCellHasRadioButton] := TObject(True);
		end;
		with (Add('Data 3') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 index `CDC` replace `D` with `<b>D</b>`';
			Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		end;
	end;
	with Items do
	begin
		h := AddItem('ParentA');
		InsertItem(h,Nil,'Child A');
		InsertItem(h,Nil,'Child B');
		CellState[TObject(h),TObject(4)] := 1;
		CellBackColor[TObject(InsertItem(h,Nil,'Child C')),TObject(5)] := $ff00;
		ExpandItem[h] := True;
		AddItem('Item A');
		h := AddItem('ParentB');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		CellBackColor[TObject(InsertItem(h,Nil,'Child 3')),TObject(5)] := $ff00;
		CellState[TObject(h),TObject(5)] := 1;
		AddItem('Item B');
		AddItem('Item C');
		AddItem('Item D');
		ExpandItem[h] := True;
	end;
	EndUpdate();
	sFile := 'c:/temp/export.html';
	Export(TObject(sFile),'vis');
	with (ComObj.CreateComObject(ComObj.ProgIDToClassID('InternetExplorer.Application')) as SHDocVw.ShellBrowserWindow) do
	begin
		Navigate2(sFile,Nil,Nil,Nil,Nil);
	end;
end
			 
		 
	 
   | 
  | 
	1075
   | 
  
	  Export Data in CSV format 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	BackColorAlternate := Color.FromArgb(240,240,240);
	DrawGridLines := EXGRIDLib.GridLinesEnum.exAllLines;
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := '(( ( value replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `' + 
	'[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match' + 
	'itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcoun' + 
	't + ` item(s)`) )))';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCompact) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarShowCloseIfRequired) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarSingleLine) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	FilterBarPromptType := EXGRIDLib.FilterPromptEnum.exFilterPromptContainsAny;
	with ConditionalFormats do
	begin
		Add('%0 like `*parent*`','parent').BackColor := $c0c0c0;
		with Add('%0 like `*child*`','child') do
		begin
			ForeColor := $8080ff;
			ApplyTo := EXGRIDLib.FormatApplyToEnum.exFormatToColumns;
		end;
		with Add('%0 like `*B*`','b') do
		begin
			ForeColor := $ff0000;
			Bold := True;
			Italic := True;
			ApplyTo := EXGRIDLib.FormatApplyToEnum.exFormatToColumns;
		end;
	end;
	with Columns do
	begin
		with (Add('Value') as EXGRIDLib.Column) do
		begin
			Width := 128;
			HTMLCaption := '<b>VA</b><r>sko';
		end;
		with (Add('APos') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 apos ``';
			AllowSort := False;
			Def[EXGRIDLib.DefColumnEnum.exCellBackColor] := TObject(15790320);
			Def[EXGRIDLib.DefColumnEnum.exCellForeColor] := TObject(8421504);
			Def[EXGRIDLib.DefColumnEnum.exHeaderForeColor] := Def[EXGRIDLib.DefColumnEnum.exCellForeColor];
			Position := 0;
		end;
		with (Add('RPos') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 rpos ``';
			AllowSort := False;
			Position := 1;
		end;
		with (Add('Index') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 index ``';
			DisplayFilterButton := True;
			FilterList := EXGRIDLib.FilterListEnum.exShowCheckBox;
			Position := 2;
		end;
		with (Add('Data 1') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 index `A-Z`';
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		end;
		with (Add('Data 2') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 index `AB` replace `A` with `<off -4>A</off>`';
			Def[EXGRIDLib.DefColumnEnum.exCellSingleLine] := TObject(False);
			Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
			Def[EXGRIDLib.DefColumnEnum.exCellHasRadioButton] := TObject(True);
		end;
		with (Add('Data 3') as EXGRIDLib.Column) do
		begin
			FormatColumn := '0 index `CDC` replace `D` with `<b>D</b>`';
			Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		end;
	end;
	with Items do
	begin
		h := AddItem('ParentA');
		InsertItem(h,Nil,'Child A');
		InsertItem(h,Nil,'Child B');
		CellState[TObject(h),TObject(4)] := 1;
		CellBackColor[TObject(InsertItem(h,Nil,'Child C')),TObject(5)] := $ff00;
		ExpandItem[h] := True;
		AddItem('Item A');
		h := AddItem('ParentB');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		CellBackColor[TObject(InsertItem(h,Nil,'Child 3')),TObject(5)] := $ff00;
		CellState[TObject(h),TObject(5)] := 1;
		AddItem('Item B');
		AddItem('Item C');
		AddItem('Item D');
		ExpandItem[h] := True;
	end;
	EndUpdate();
	OutputDebugString( Export('','vis') );
end
			 
		 
	 
   | 
  | 
	1074
   | 
  
	  Is it possible to check multiple-items at once 
	
		
			
 
 
// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		bHasParent := FormatABC('value != 0',Items.ItemParent[e.item],Nil,Nil);
		with Items do
		begin
			CellHasCheckBox[TObject(e.item),TObject(0)] := False;
		end;
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Tasks') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		FormatColumn := 'value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)';
	end;
	HeaderVisible := True;
	SingleSel := False;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Nil,'Task 1');
		hChild := InsertItem(h,Nil,'Task 2');
		hChild := InsertItem(h,Nil,'Task 3');
		ExpandItem[h] := True;
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exTop] := 1;
		CellValue[TObject(LockedItem[EXGRIDLib.VAlignmentEnum.exTop,0]),TObject(0)] := '<c>Select multiple items and press the <b>SPACE</b> key';
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1073
   | 
  
	  How can I get the icon from the cell when using the Items.CellImages property (icon index) 
	
		
			
 
 
// MouseMove event - Occurs when the user moves the mouse.
procedure TWinForm1.AxGrid1_MouseMoveEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_MouseMoveEvent);
begin
	with AxGrid1 do
	begin
		i := get_ItemFromPoint(-1,-1,c,hit);
		OutputDebugString( FormatABC('( 0x44 = ( value bitand 0x44 ) ) ? ( ( (value bitand 0xFFFF0000) bitshift 16 ) array B split `,` )  : `no image`',TObject(hit),Items.CellImages[TObject(i),TObject(c)],Nil) );
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	Columns.Add('Default');
	with Items do
	begin
		CellImages[TObject(AddItem('Item 1')),TObject(0)] := '3,2,1';
		CellImages[TObject(AddItem('Item 2')),TObject(0)] := '2,3';
		CellImages[TObject(AddItem('Item 3')),TObject(0)] := '2,';
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1072
   | 
  
	  How can I get the icon from the cell when using the Items.CellImages property (icon position within the cell) 
	
		
			
 
 
// MouseMove event - Occurs when the user moves the mouse.
procedure TWinForm1.AxGrid1_MouseMoveEvent(sender: System.Object; e: AxEXGRIDLib._IGridEvents_MouseMoveEvent);
begin
	with AxGrid1 do
	begin
		i := get_ItemFromPoint(-1,-1,c,hit);
		OutputDebugString( FormatABC('( 0x44 = ( value bitand 0x44 ) ) ? 1 + ( (value bitand 0xFFFF0000) bitshift 16 ) : `no image`',TObject(hit),Nil,Nil) );
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	Columns.Add('Default');
	with Items do
	begin
		CellImages[TObject(AddItem('Item 1')),TObject(0)] := '3,2,1';
		CellImages[TObject(AddItem('Item 2')),TObject(0)] := '2,3';
		CellImages[TObject(AddItem('Item 3')),TObject(0)] := '2';
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1071
   | 
  
	  Is it possible to change the visual appearance of the position signs when user changes the column's position by drag and drop 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	with Columns do
	begin
		Add('Column 1');
		Add('Column 2');
		Add('Column 3');
	end;
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABZEGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMYxXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADKMA4SOKIZhrE4bBhGaQRUgyI43RhHUBzVI' + 
	'UcQvE6TZRHCQYHgkNIhDJIM7TPLkeSVJaTIRoKhJUogApQThTMgVRDEThkGoSa6soSoYTDBKybLrSLKagOT5YUDKUqSdKEZRpEq1YztWbaQoCUoqVRRVIWfbNd4JJa4a' + 
	'DhWpYdpeeY5R7bWLgBYVVABL7LLRsSxpHxPF6RXxaeI3GKsaS8G6ic6nPQMHj7I4NS5pUa6Rh2VYNSa8AAtETRYznOw4bTMXAjNIea5bAYIIR5HIoDzVbQcCQAHL9DBe' + 
	'EMIQEEISgGhMGZQmocgymoYRRCIEQ0G2HYBnEIBig4V4zCQGINnmagCECY43medZ6H2Pw/g+X5fnueh/h+R5+AKABfkMWgGgGYA4AICoCGCE5WA4CphACMgSD2IRIDIB' + 
	'ICmEd5YGCBpRjGBgegWIYIgWdgoGIRQsiKCZiAiJZ0gGQI4jUS4LECOAiBmDJflGfg2BSY4Al4OhGkOCJ2DgFJjGGfgqgiH5Ch4RhGkqOQmEOEpkFkHQYhJRYyESAokG' + 
	'KHhIhKIxJEmf4VGUeRGFmF5iBkchPhYJQ5GoYIZg6Ug6GoFYmkmNhuhulRGHKGoImefh0BUZ4JmYeoemeSZ2H6HQmgoBgXDqXwUAQgI=');
		Add(2,'CP:1 0 -36 0 0');
	end;
	set_Background(EXGRIDLib.BackgroundPartEnum.exColumnsPositionSign,$2000000);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1070
   | 
  
	  How can I add a title column 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	HeaderHeight := 22;
	HeaderAppearance := EXGRIDLib.AppearanceEnum.Etched;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exAllLines;
	with Columns do
	begin
		Add('Col 1');
		(Add('Col 2') as EXGRIDLib.Column).FormatColumn := '1 pos ``';
		(Add('Col 3') as EXGRIDLib.Column).FormatColumn := '1 pos `A-`';
		(Add('Col 4') as EXGRIDLib.Column).FormatColumn := '1 pos `A-Z`';
		with (Add('Title') as EXGRIDLib.Column) do
		begin
			ExpandColumns := '0,1,2,3';
			DisplayExpandButton := False;
			AllowSort := False;
			AllowDragging := False;
			Position := 0;
			HeaderAlignment := EXGRIDLib.AlignmentEnum.CenterAlignment;
		end;
	end;
	ColumnAutoResize := False;
	with Items do
	begin
		AddItem('Item 1');
		AddItem('Item 2');
		AddItem('Item 3');
		AddItem('Item 4');
	end;
	EndUpdate();
	OutputDebugString( Export('',Nil) );
end
			 
		 
	 
   | 
  | 
	1069
   | 
  
	  FilterBarCaption ALLUI Keyword ( sample 3, result, leaf ) 
	
		
			
 
 
// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddGroupItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddGroupItemEvent);
begin
	with AxGrid1 do
	begin
		with Items do
		begin
			ItemBackColor[e.item] := $f0f0f0;
			val := CellValue[TObject(e.item),TObject(GroupItem[e.item])];
			CellState[TObject(e.item),TObject(GroupItem[e.item])] := AxGrid1.FormatABC('A = `Checked` ? 1 : 0',TObject(val),Nil,Nil);
		end;
	end
end;
// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[e.item],Nil,Nil);
		Items.CellImage[TObject(e.item),TObject(3)] := i;
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXGRIDLib.FilterTypeEnum.exCheck;
	end;
	with (Columns.Add('Image') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib.FilterTypeEnum.exImage;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 rpos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellValue[TObject(h),TObject(1)] := 'Sub-Item B';
		CellState[TObject(h),TObject(2)] := 1;
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := '(( ( allui replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `' + 
	'[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match' + 
	'itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + leafitemcount + ` result(s)` ) : (`<r><fgcolor=808080>`+ leafitemcount + ` ' + 
	'item(s)`) )))';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	AllowGroupBy := True;
	SortBarVisible := True;
	with Columns.Item[TObject(2)] do
	begin
		FormatColumn := '%CS2 ? `Checked` : `Unchecked`';
		SortOrder := EXGRIDLib.SortOrderEnum.SortAscending;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1068
   | 
  
	  A black portion is shown while I am using the BackColorAlternate with EBN colors. What can I do 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	DefaultItemHeight := 20;
	VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAAEhIDhAxHAxg0HG0Mg4xGI3HMOig3GcJiYAf8jAEhhUnAAyhEqg8hk0oAsIjgAiAwmYxGA4mYzGwwkI0i0ooUnB0IBMIl1Dg8zmYyGolptPkI1mY' + 
	'1GAll9KoUslNIrVCqNQldShFUstXAVfrVcrlZtVhuFnsUHq1zoczoQGhFBkNpg6zbDykUkhsPHE2h85nc9n8xtVDtlex9Msd2p1YstVq9ux8HyMtzuFz1PsNTzQlv2hh' + 
	'WfkuqpeVuN0q+nvEooN5veSAGpkb/ACcZrvhU3w83nM/poxGuchGpoVBvWgg+8knA4WimnFxI45Er5XOlHMg/Q3XU33W4ew9Wyu11mchDagcO7zus8VDoNBBEIKBpMY6' + 
	'DqOQyokhA/IQIQmwMk4bIQFDcoO6LWgwhQkNcABwEyAB5GwWbet6cRQg3DENQ5D8QxADZvEkAB8nabsURGeBpFM3pwE2AEZRpDx/neZpOR3Dz9oO/r/wCMoZNTBQAQRJ' + 
	'SEwYg8HPGhEIoNCaEwq10gQ2WcRt7LcRxRFpuxUAEURQ3sczBEMgTTG8gN7HpOSEAEiQBAQZpmQ0DibPUFwbKcHwkhQoQtNQNzNEMbABOKDy/DMYQzHLeoPL0OTJSUd0' + 
	'pHcxTewk5zrIygIRPslz4lEngBKIAQivgASs/kLSBTlO00f8t0vGcgUbDlDRjXLCUNRERRvRgAHW2oAICA==');
	with (Columns.Add('Default') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with (Columns.Add('Position') as EXGRIDLib.Column) do
	begin
		FormatColumn := '1 rindex ``';
		Visible := False;
	end;
	with ConditionalFormats.Add('%C1 mod 2',Nil) do
	begin
		BackColor := $1000000;
	end;
	with Items do
	begin
		AddItem('Item 1');
		AddItem('Item 2');
		AddItem('Item 3');
		AddItem('Item 4');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1067
   | 
  
	  How can I specify alternate background colors for each root item, similar with BackColorAlternate 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Default') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with (Columns.Add('Position') as EXGRIDLib.Column) do
	begin
		FormatColumn := '( ( 1:=( ( 0:=(1 rpos '''') ) lfind `.`) ) < 0 ? =:0 : (=:0 left =:1) )';
		Visible := False;
	end;
	with ConditionalFormats.Add('%C1 mod 2',Nil) do
	begin
		BackColor := $f0f0f0;
	end;
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		h := AddItem('Root 3');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1066
   | 
  
	  Is it possible to change the caption from a column without to remove the column and add it with the new caption 
	
		
			
with AxGrid1 do
begin
	(Columns.Add('ColumnName') as EXGRIDLib.Column).Caption := 'NewName';
	(Columns.Add('ColumnName') as EXGRIDLib.Column).HTMLCaption := '<b>New</b>Name';
end
			 
		 
	 
   | 
  | 
	1065
   | 
  
	  FilterBarCaption ALL Keyword ( sample 2, result ) 
	
		
			
 
 
// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[e.item],Nil,Nil);
		Items.CellImage[TObject(e.item),TObject(3)] := i;
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.CheckValueType;
			Option[EXGRIDLib.EditorOptionEnum.exCheckValue2] := TObject(1);
		end;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXGRIDLib.FilterTypeEnum.exCheck;
	end;
	with (Columns.Add('Image') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib.FilterTypeEnum.exImage;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellValue[TObject(h),TObject(1)] := 'Sub-Item B';
		CellState[TObject(h),TObject(2)] := 1;
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := '(( ( all replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[<' + 
	's>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchit' + 
	'emcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount ' + 
	'+ ` item(s)`) )))';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[TObject(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1064
   | 
  
	  FilterBarCaption ALL Keyword ( sample 1 ) 
	
		
			
 
 
// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[e.item],Nil,Nil);
		Items.CellImage[TObject(e.item),TObject(3)] := i;
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.CheckValueType;
			Option[EXGRIDLib.EditorOptionEnum.exCheckValue2] := TObject(1);
		end;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXGRIDLib.FilterTypeEnum.exCheck;
	end;
	with (Columns.Add('Image') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib.FilterTypeEnum.exImage;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellValue[TObject(h),TObject(1)] := 'Sub-Item B';
		CellState[TObject(h),TObject(2)] := 1;
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := 'all';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[TObject(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1063
   | 
  
	  FilterBarCaption ALLUI Keyword ( sample 2, result ) 
	
		
			
 
 
// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[e.item],Nil,Nil);
		Items.CellImage[TObject(e.item),TObject(3)] := i;
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.CheckValueType;
			Option[EXGRIDLib.EditorOptionEnum.exCheckValue2] := TObject(1);
		end;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXGRIDLib.FilterTypeEnum.exCheck;
	end;
	with (Columns.Add('Image') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib.FilterTypeEnum.exImage;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellValue[TObject(h),TObject(1)] := 'Sub-Item B';
		CellState[TObject(h),TObject(2)] := 1;
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := '(( ( allui replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `' + 
	'[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( match' + 
	'itemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcoun' + 
	't + ` item(s)`) )))';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[TObject(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1062
   | 
  
	  FilterBarCaption ALLUI Keyword ( sample 1 ) 
	
		
			
 
 
// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[e.item],Nil,Nil);
		Items.CellImage[TObject(e.item),TObject(3)] := i;
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.CheckValueType;
			Option[EXGRIDLib.EditorOptionEnum.exCheckValue2] := TObject(1);
		end;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXGRIDLib.FilterTypeEnum.exCheck;
	end;
	with (Columns.Add('Image') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib.FilterTypeEnum.exImage;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellValue[TObject(h),TObject(1)] := 'Sub-Item B';
		CellState[TObject(h),TObject(2)] := 1;
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := 'allui';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[TObject(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1061
   | 
  
	  FilterBarCaption AVAILABLE Keyword ( sample 2, result ) 
	
		
			
 
 
// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[e.item],Nil,Nil);
		Items.CellImage[TObject(e.item),TObject(3)] := i;
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.CheckValueType;
			Option[EXGRIDLib.EditorOptionEnum.exCheckValue2] := TObject(1);
		end;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXGRIDLib.FilterTypeEnum.exCheck;
	end;
	with (Columns.Add('Image') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib.FilterTypeEnum.exImage;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellValue[TObject(h),TObject(1)] := 'Sub-Item B';
		CellState[TObject(h),TObject(2)] := 1;
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := '(( ( value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` ) + ` ` + ( avai' + 
	'lable replace `[` with `<bgcolor=C0C0C0><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` replace `<s>` with ``' + 
	' replace `</s>` with `` ) + `<fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount ' + 
	'+ 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[TObject(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1060
   | 
  
	  FilterBarCaption AVAILABLE Keyword ( sample 1 ) 
	
		
			
 
 
// AddItem event - Occurs after a new Item has been inserted to Items collection.
procedure TWinForm1.AxGrid1_AddItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AddItemEvent);
begin
	with AxGrid1 do
	begin
		i := FormatABC('value + 1',Items.ItemToIndex[e.item],Nil,Nil);
		Items.CellImage[TObject(e.item),TObject(3)] := i;
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.CheckValueType;
			Option[EXGRIDLib.EditorOptionEnum.exCheckValue2] := TObject(1);
		end;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXGRIDLib.FilterTypeEnum.exCheck;
	end;
	with (Columns.Add('Image') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterType := EXGRIDLib.FilterTypeEnum.exImage;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		h := AddItem('Item B');
		CellValue[TObject(h),TObject(1)] := 'Sub-Item B';
		CellState[TObject(h),TObject(2)] := 1;
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080> ` + value + ` </fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := 'value + ` ` + available';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	Columns.Item[TObject(2)].Filter := 1;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1059
   | 
  
	  Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 3, results ) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		CellValue[TObject(AddItem('Item B')),TObject(1)] := 'Sub-Item B';
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080>` + value + `</fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := '(`<b>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ' + 
	'` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )) replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace' + 
	' `]` with ` </b></bgcolor></fgcolor>`';
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarToggle;
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	with Columns.Item[TObject(1)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exPattern;
		Filter := '*B';
	end;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1058
   | 
  
	  Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 2 ) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		CellValue[TObject(AddItem('Item B')),TObject(1)] := 'Sub-Item B';
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	FilterBarFont := (Font as stdole.StdFont);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080>` + value + `</fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := 'value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>`';
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarToggle;
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	with Columns.Item[TObject(1)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exPattern;
		Filter := '*B';
	end;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1057
   | 
  
	  Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 1 ) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Col-1') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Col-2') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		CellValue[TObject(AddItem('Item A')),TObject(1)] := 'Sub-Item A';
		CellValue[TObject(AddItem('Item B')),TObject(1)] := 'Sub-Item B';
		CellValue[TObject(AddItem('Item C')),TObject(1)] := 'Sub-Item C';
	end;
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd,FormatABC('`<fgcolor=808080>` + value + `</fgcolor>`',TObject(get_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarAnd)),Nil,Nil));
	FilterBarCaption := 'value replace `[` with `<fgcolor=808080>[` replace `]` with `]</fgcolor>`';
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarToggle;
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	with Columns.Item[TObject(1)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exPattern;
		Filter := '*B';
	end;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1056
   | 
  
	  Is it possible to automatically displays the control's filter label to the right 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Item') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarCaption := '`<r>` + value';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarShowCloseOnRight) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarToggle);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1055
   | 
  
	  How can I get the number of results/items being shown in the control's filter bar (sample 4) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Item') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowFocusItem) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox) Or Integer(EXGRIDLib.FilterListEnum.exSortItemsAsc);
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarFont := (Font as stdole.StdFont);
	FilterBarPrompt := FormatABC('`<b>` + value',TObject(FilterBarPrompt),Nil,Nil);
	FilterBarCaption := '`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount +' + 
	' 1) + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCompact) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarShowCloseOnRight) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarShowCloseIfRequired) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCaptionVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1054
   | 
  
	  How can I get the number of results being shown in the control's filter bar (sample 3) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarFont := (Font as stdole.StdFont);
	FilterBarCaption := '`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount +' + 
	' 1) + ` result(s)` ) : ``)';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCompact) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCaptionVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1053
   | 
  
	  How can I get the number of results being shown in the control's filter bar (sample 2, compact) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarFont := (Font as stdole.StdFont);
	FilterBarCaption := '`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? `<off -4> ` + abs(matchitemcount + 1) + ` result(s)` : ``)';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCompact) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarSingleLine) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCaptionVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1052
   | 
  
	  How can I get the number of results being shown in the control's filter bar (sample 1) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarFont := (Font as stdole.StdFont);
	FilterBarCaption := '`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCaptionVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1051
   | 
  
	  FilterBarCaption Predefined Keywords 
	
		
			
 
 
// AfterExpandItem event - Fired after an item is expanded (collapsed).
procedure TWinForm1.AxGrid1_AfterExpandItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_AfterExpandItemEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.CheckValueType;
			Option[EXGRIDLib.EditorOptionEnum.exCheckValue2] := TObject(1);
		end;
		DisplayFilterButton := True;
		DisplayFilterPattern := False;
		FilterType := EXGRIDLib.FilterTypeEnum.exCheck;
	end;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		h := AddItem('Item B');
		CellState[TObject(InsertItem(h,Nil,'Sub-Item B1')),TObject(1)] := 1;
		InsertItem(h,Nil,'Sub-Item B2');
		ExpandItem[h] := True;
		AddItem('Item C');
	end;
	FilterInclude := EXGRIDLib.FilterIncludeEnum.exItemsWithChilds;
	FilterBarFont := (Font as stdole.StdFont);
	FilterBarCaption := '`<fgcolor=0000FF><i>value/current</i></fgcolor>: <fgcolor=808080>` + value + `</fgcolor>` + `<br><fgcolor=0000FF><i>available</i' + 
	'></fgcolor>: ` + available + `<br><fgcolor=0000FF><i>allui</i></fgcolor>: ` + allui + `<br><fgcolor=0000FF><i>all</i></fgcolor>:' + 
	' ` + all + `<br><fgcolor=0000FF><i>itemcount</i></fgcolor>: <fgcolor=808080>` + itemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><' + 
	'i>visibleitemcount</i></fgcolor>: <fgcolor=808080>` + visibleitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>matchitemcount</i' + 
	'></fgcolor>: <fgcolor=808080>` + matchitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>promptpattern</i></fgcolor>: <fgcolor=80' + 
	'8080>` + promptpattern + `</fgcolor>`+ `<br><fgcolor=0000FF><i>leafitemcount</i></fgcolor>: <fgcolor=808080>` + leafitemcount + ' + 
	'`</fgcolor>`';
	FilterBarPromptPattern := 'B';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCaptionVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1050
   | 
  
	  I am using filter prompt feature, and also column's filter, just wondering if possible to compact displaying the filter bar so it won't show on multiple lines 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarFont := (Font as stdole.StdFont);
	FilterBarCaption := '`<r><i><fgcolor=808080><upline><solidline><sha ;;0>` + value';
	FilterBarPromptPattern := 'B';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCompact) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarSingleLine) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1049
   | 
  
	  Just wondering if it is possible to show the filter bar's close button on the right ( sample 2 ) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarShowCloseOnRight) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarToggle) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	FilterBarPrompt := FormatABC('`<r>` + value',TObject(FilterBarPrompt),Nil,Nil);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1048
   | 
  
	  Just wondering if it is possible to show the filter bar's close button on the right ( sample 1 ) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	RightToLeft := True;
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarToggle) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1047
   | 
  
	  How can I change the visual appearance of the filter bar's close button (EBN) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABHQDg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLOg7IJj' + 
	'yI4/SJAYCydKAWhxIaZKJHCZoEDaTAADCNVAQp6MEIJVbVEI0e79OgBLp/Z7kECIJJAaRjHQdJxGLA8EhtCQhCZteK6SgMKJYXhWQYRXI1JwvMBrWrdQjiOYELQtMKmS' + 
	'ZNLYGG4dR5SVJbcYhSYsRRFMoyDIOXYDLKsdYqSpXIThObEGgaPqJYjsUjCMKnR7HVIURrBPC9TBPE69ZgmC6ucKPX51ShKFaBWDZcwFAS+UBuYCAILiEAQGZ1XT8ORO' + 
	'icbgJgSTJRlCaZeDsHY7QGR4xkSYp3CaExZAQMgalQYAwjCAAfBANxcA2TgKAUOpDCGFhKg0RpXCwCwDHQHQHEyAIkCkOhbFOGA8A8DohBgRg9AccZcn8EpEjMLI2C2D' + 
	'YxAgQgvAIUIVkoAAPBQDJlECTZ3CCYwDACQwUA8A5MCAWAWDiQi4l8aQOEgLJuBgBgDmYFAzEoIoIl0WALgKYJbBABADAAHgHg8VAMmqCQQDMXABAATYwTmNwBDATJXA' + 
	'iAgjHmNQ5lgQ5QEQEQMmcWg/GwD5ylyNw2gMcJcjsBgBgOQQDDhRpVAMMwnDBFw1B0Ax8D0DxOmmJJIGQTY5hGMAwkwM4CAYLZAmAOJnAqAojiIGg6iieYkmeAYOHaKJ' + 
	'DCyCwjH6AoggsQpQliAJLhgaJ0CESBTnyDwjk+cg4g4P5IHIHJ+BWRRzlYWAxiOUxihsY4KjKLJRGqC44FCegkkkM58iAKAPnIWIWD8SRSFSfQnkmewUhYP4GiGKJ7G0' + 
	'TIbCSUoggqUo0lAQ4LnEcBcD8Coiiif4nE+eAAn2HpOkcFJqi4T5SkyMw/kqQown8IBIBOdA+A+DJrBqVxXEqYo4lCApLhGHBnD8S4ymyfxmg+cwQkQP5egOUZIWoEAk' + 
	'jIeIPBMBJBD+TBjBifwvkuc58hQJQPmFrYykkchclSApKjGOBuD+TRDFCfw3mmIxNi8FxFlOXhVC4aYDFyPgvg2YBcBcLZGCGCJ0DSLRzGSWQ/lmY5+mEP5gmMDBZRSM' + 
	'RsFsOxMhMJJ/DsTpTnwaQaE+N5ojuNhdEYNI5C4TZJO1GRDmCaxnA2Yx4n8IpIjOTBQBQC5TgyYw7gUYRYikC0BYRwsDQBoB8eA6Q2hsE0BUXgywZtYCyHMKwnxSAhAQ' + 
	'HkIQhRrBaDsCwA4ERiB2EWAIYIXhhiVEgAEUYwwYjyASLge4FhHgRDkM8OQih0jWPkGgBBAQ');
	end;
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarToggle) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	set_Background(EXGRIDLib.BackgroundPartEnum.exFooterFilterBarButton,$1000000);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1046
   | 
  
	  How can I change the visual appearance of the filter bar's close button (solid) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible;
	set_Background(EXGRIDLib.BackgroundPartEnum.exFooterFilterBarButton,$ff);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1045
   | 
  
	  Is it possible to prevent definitely showing the filter bar's close button 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible;
	set_Background(EXGRIDLib.BackgroundPartEnum.exFooterFilterBarButton,$ffffffff);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1044
   | 
  
	  Is it possible to show the close button only if there is a filter applied 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarShowCloseIfRequired) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1043
   | 
  
	  The control's filter bar is not closed once I click the close button (toggle) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
		LockedItemCount[EXGRIDLib.VAlignmentEnum.exBottom] := 1;
		h := LockedItem[EXGRIDLib.VAlignmentEnum.exBottom,0];
		ItemDivider[h] := 0;
		CellValue[TObject(h),TObject(0)] := '<c><fgcolor=808080>Press the CTRL + F to turn on/off the control''s filter bar. ALT + Up/Down moves the focus.';
		CellValueFormat[TObject(h),TObject(0)] := EXGRIDLib.ValueFormatEnum.exHTML;
	end;
	FilterBarCaption := '`<r><fgcolor=808080>` + value';
	FilterBarPromptPattern := 'B';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCompact) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarToggle) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarSingleLine) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1042
   | 
  
	  How can I display the control's filter on a single line 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarCaption := 'len(value) ? `filter for: <fgcolor 808080>` + value  : `<fgcolor 808080>no filter`';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarSingleLine) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1041
   | 
  
	  How can I display the control's filter on a single line (prompt-combined) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarCaption := '`<r>` + value';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarCompact) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarSingleLine) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item A|Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1040
   | 
  
	  How can I get the number of results after a filter is applied 
	
		
			
 
 
// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
procedure TWinForm1.AxGrid1_ClickEvent(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		ClearFilter();
	end
end;
// FilterChange event - Occurs when filter was changed.
procedure TWinForm1.AxGrid1_FilterChange(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'Items.MatchItemCount' );
		OutputDebugString( Items.MatchItemCount );
		OutputDebugString( FormatABC('value < 0 ? `filter applied: ` + abs(value + 1) + ` result(s)` : `no filter`',Items.MatchItemCount,Nil,Nil) );
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible;
	FilterBarPromptPattern := 'Item';
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1039
   | 
  
	  How can I programmatically clear the control's filter 
	
		
			
// Click event - Occurs when the user presses and then releases the left mouse button over the grid control.
procedure TWinForm1.AxGrid1_ClickEvent(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		ClearFilter();
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible;
	FilterBarPromptPattern := 'B';
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1038
   | 
  
	  Is it possible to prevent closing the control's filter bar, so it is always shown (prompt-combined) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptPattern := 'B';
	FilterBarPromptVisible := Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible) Or Integer(EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible);
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1037
   | 
  
	  Is it possible to prevent closing the control's filter bar, so it is always shown (prompt) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarPromptVisible;
	FilterBarPromptPattern := 'B';
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1036
   | 
  
	  Is it possible to prevent closing the control's filter bar, so it is always shown 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	(Columns.Add('Item') as EXGRIDLib.Column).DisplayFilterButton := True;
	with (Columns.Add('Pos') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowSort := False;
		Width := 32;
		FormatColumn := '1 apos ``';
		Position := 0;
	end;
	with Items do
	begin
		AddItem('Item A');
		AddItem('Item B');
		AddItem('Item C');
	end;
	FilterBarCaption := 'len(value) = 0 ? `<fgcolor=808080>no filter` : value';
	FilterBarPromptVisible := EXGRIDLib.FilterBarVisibleEnum.exFilterBarVisible;
	with Columns.Item[TObject(0)] do
	begin
		FilterType := EXGRIDLib.FilterTypeEnum.exFilter;
		Filter := 'Item B';
	end;
	ApplyFilter();
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1035
   | 
  
	  How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 4) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	VisualDesign := 'gBFLBWIgBAEHhEJAEGg6VAkHeLpgwChAOhULB8XAUUg8MAAREEHGMcgRCJ0ei8dhABDEcQAAYAQGKIYBkAKBQAGaAoDDMOQwQwAAxjGKEEwsACEIrjKCRShyCYZRhGcT' + 
	'SBCIZBqEqSZLiEZRQiiCYsS5GQBRWAkEwiBiEQTjea5CgOIAFS7LIqjRQEBxhIaZYIGaiQADENo9TxIMZAfBIHShK6NJABCCSQKkYx0HScRijDIEFwGIQmbKiej4DCiC' + 
	'QQW7OYYRVCNMQSfa8HivJyrcamfp/YBgOBYHb1eLVPR5LwfPCGUw1P6PLxkORZHimK4tSLHV7xVpMIwZFafIQhCCoHomS5NU7UNR0TQUFx9FaGX7rDDsGwLAJ6XRgF4b' + 
	'g2VpnHePpenAN4bH2GwHFmApSjEGBLnWOpRGOTBZHOegrE6BxPiWVJqCweQrn0LgJAWJBjwgaw1gKO5HmWch5h+fovF+G5bmich4BgfZkB8dynRUVYqiUR5rnmex/F6N' + 
	'4tn2AJfnebZ3DEXw3HWXgzAyIwgicKJKBKEIhCeCgiHyHYFEmSAFmqBghFIdgSCeIJygYDAyAgJx6AoIINAMOJNCgCZCGoGoLmMCI+CwJoihMNglCCIhzFCUg0EmMhgh' + 
	'WDBkAiQg9CUY4jEYN4Jk2IxklYJoJHIUg+CSZJSESFwkkkGI+FOFIJEIRhPhMCRJCSVoRrSBhiDgTZjHYT4PEkYhwhgJYm0SaIaiaSYuE+GQNlmCIBGCJxjhiZQ5AkMh' + 
	'Ag6ExJCkPhPguaAiFYUAlAkKZ0g6HoOEmWR/GHcA4m0OwIlIJIHCRgQshGJhpjoaocieaZiC6GAimkUgehIOwnGYGYIGkah6jaE4rg6SpCjKK5rEOMYlGIGIihKOgglo' + 
	'Foqj6L5aGaBo6CkGIkAQjiPpCAAaJILCTJQlKPACDaXJgmSaJsnCdJ4nygKEoijKQpSmKcqCpKoqysK0rivLAsSyLMtC1LYty4Lkui7LwvS+L8wDBMIwzEMUxjHMgyTK' + 
	'MszDNM4zzQNE0jTNQ1TWNc2DZNo2zcN03jfOA4TiOM5DlOY5zoOk6jrOw7TuO88DxPI8z0PU9j3Pg+T6Ps/D9P4/0AQFAkDQRBUGQdCEJQpC0MQ1DkPRBEUSRNFEVBhF' + 
	'kXRhGQ9D6Dxfh+W5gGGd4QH2XQjCmDpFFaKoVB+D5Xmed5+H8YAHnIAh9EwV5Fl0d4MkMKJICmSgygSJAoEmMUCIPgnDCCIOQFYCxJjwFoCcA4kxoF+AIJkAgExegDEg' + 
	'EYQInAzCUAIOEGgfxiiRDYF1Q4EQ2BSCaEQYwbAiKREMpRSymFNDIAkAxT6oVRgSA2qdVKq1WqvVirMZQUhSCnBUMoIgoQRgnGSIQUgkg1hIHYAkAYMROAmHiLsE4xxS' + 
	'CxBwEwCQ0wmDdBsE0GYXBtg2CSPMFIuwYiQBYBQeAcwOCnBCCZgw0g0glBONAQgqQThCGgPQGoBQfiRGmOEZIPAXjsBoPAO4HRThhA0EQSA5BAgaCKJIGg3QdhOCmNUB' + 
	'oQAijTCIF0FwQxpCHDIPAYYMQGgtCmFcaQtRAjZCyFYSojQ2B2BoKwIYFApBXEIBsIQ1QsAWAWEwaA1xCgjAoIAQBAQ=';
	Columns.Add('Column');
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1034
   | 
  
	  How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 3) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(3,'gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB' + 
	'cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD' + 
	'xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l' + 
	'lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5JlgX' + 
	'IcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIRg' + 
	'wZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOMI' + 
	'NCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=');
		Add(1,'CP:3 -2 -2 2 2');
		Add(4,'gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB' + 
	'cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD' + 
	'xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l' + 
	'lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCEe' + 
	'Bkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchOF' + 
	'SFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQOJ' + 
	'tDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=');
		Add(2,'CP:4 -2 -2 2 2');
	end;
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exGroupLinesAtRoot;
	HasButtons := EXGRIDLib.ExpandButtonEnum.exCustom;
	set_HasButtonsCustom(False,16777216);
	set_HasButtonsCustom(True,33554432);
	Columns.Add('Column');
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1033
   | 
  
	  How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 2) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'XP:TREEVIEW 2 1');
		Add(2,'XP:TREEVIEW 2 2');
	end;
	set_Background(EXGRIDLib.BackgroundPartEnum.exTreeGlyphOpen,$1000000);
	set_Background(EXGRIDLib.BackgroundPartEnum.exTreeGlyphClose,$2000000);
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	Columns.Add('Column');
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1032
   | 
  
	  How can I find if the control is running in DPI mode 
	
		
			
with AxGrid1 do
begin
	OutputDebugString( FormatABC('dpi = 1 ? `normal/stretch mode` : `dpi mode`',Nil,Nil,Nil) );
end
			 
		 
	 
   | 
  | 
	1031
   | 
  
	  How can I change the visual appearance of the +/- buttons (method 1) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB' + 
	'cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD' + 
	'xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l' + 
	'lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5JlgX' + 
	'IcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIRg' + 
	'wZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOMI' + 
	'NCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA=');
		Add(2,'gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQSB' + 
	'cQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+OpfD' + 
	'xXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4l' + 
	'lWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCEe' + 
	'Bkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchOF' + 
	'SFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQOJ' + 
	'tDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI=');
	end;
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	set_Background(EXGRIDLib.BackgroundPartEnum.exTreeGlyphOpen,$1000000);
	set_Background(EXGRIDLib.BackgroundPartEnum.exTreeGlyphClose,$2000000);
	Columns.Add('Column');
	with Items do
	begin
		h := AddItem('Root 1');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
		h := AddItem('Root 2');
		InsertItem(h,Nil,'Child');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1030
   | 
  
	  I am using single selection, the question is if possible to select an item only when the user releases the mouse, as currently it selects the item as soon as the user clicks it 
	
		
			
// SelectionChanged event - Fired after a new item has been selected.
procedure TWinForm1.AxGrid1_SelectionChanged(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'SelectionChanged' );
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	FreezeEvents(True);
	SingleSel := True;
	SelectOnRelease := True;
	(Columns.Add('Column') as EXGRIDLib.Column).FormatColumn := '1 apos `A-Z`';
	with Items do
	begin
		AddItem('');
		SelectItem[AddItem('')] := True;
		AddItem('');
	end;
	FreezeEvents(False);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1029
   | 
  
	  Is it possible to select nothing 
	
		
			
// SelectionChanged event - Fired after a new item has been selected.
procedure TWinForm1.AxGrid1_SelectionChanged(sender: System.Object; e: System.EventArgs);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'SelectionChanged' );
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	FreezeEvents(True);
	AllowSelectNothing := True;
	(Columns.Add('Column') as EXGRIDLib.Column).FormatColumn := '1 apos `A-Z`';
	with Items do
	begin
		AddItem('');
		SelectItem[AddItem('')] := True;
		AddItem('');
	end;
	FreezeEvents(False);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1028
   | 
  
	  How can I specify the color for control's selection when it loses the focus 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('') as EXGRIDLib.Column) do
	begin
		AllowSizing := False;
		AllowDragging := False;
		AllowSort := False;
		Width := 24;
		Def[EXGRIDLib.DefColumnEnum.exCellHasButton] := TObject(True);
	end;
	(Columns.Add('Column') as EXGRIDLib.Column).FormatColumn := '1 apos `A-Z`';
	with Items do
	begin
		AddItem('');
		SelectItem[AddItem('')] := True;
		AddItem('');
	end;
	set_Background(EXGRIDLib.BackgroundPartEnum.exSelBackColorHide,$c4c4c4);
	set_Background(EXGRIDLib.BackgroundPartEnum.exSelForeColorHide,$10000);
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1027
   | 
  
	  How can I change the background color for checked items (EBN color, frame) 
	
		
			
 
 
// CellStateChanged event - Fired after cell's state has been changed.
procedure TWinForm1.AxGrid1_CellStateChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellStateChangedEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	SelBackMode := EXGRIDLib.BackModeEnum.exTransparent;
	DefaultItemHeight := 22;
	with (Columns.Add('Tasks') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with VisualAppearance do
	begin
		Add(2,'gBFLBCJwBAEHhEJAAEhABUkIQAAYAQGKIcBiAKBQAGYBIJDEMQ3DjAUBjMK4ZwTC4AIQjCK4JDKHYJRpHEZgLBMJAAGIZYhhUYRUiYMkiJBGGDIDiGGI2SJAcbTVIEcx' + 
	'9EyUJSgSTJOjCMokTTIU4TTLYASbJafJJhWSaAiyMouDIOMg1BDNIw/Hika6jOgKUisNJXRzWIBTbDlOQ3JqnbCjOQRSrQBoNDAMAiiaKlbwJPK9RoieQXfwUAJrXJcF' + 
	'qXFSLVxNBKAQEBA=');
		Add(1,'CP:2 1 1 -1 -1');
	end;
	with ConditionalFormats.Add('%CS0 = 1',Nil) do
	begin
		BackColor := $1000000;
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Nil,'Task 1');
		SelectItem[hChild] := True;
		hChild := InsertItem(h,Nil,'Task 2');
		CellState[TObject(hChild),TObject(0)] := 1;
		hChild := InsertItem(h,Nil,'Task 3');
		CellState[TObject(hChild),TObject(0)] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1026
   | 
  
	  How can I change the caption of the checked items (sample 2) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Tasks') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
		Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		FormatColumn := '%CS0 = 1 ? `<bgcolor=000000><fgcolor=FFFFFF> ` + value + ` </fgcolor></bgcolor>` : value';
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Nil,'Task 1');
		SelectItem[hChild] := True;
		hChild := InsertItem(h,Nil,'Task 2');
		CellState[TObject(hChild),TObject(0)] := 1;
		hChild := InsertItem(h,Nil,'Task 3');
		CellState[TObject(hChild),TObject(0)] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1025
   | 
  
	  How can I change the caption of the checked items (sample 1) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Tasks') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
		Def[EXGRIDLib.DefColumnEnum.exCellValueFormat] := TObject(1);
		FormatColumn := 'value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)';
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Nil,'Task 1');
		SelectItem[hChild] := True;
		hChild := InsertItem(h,Nil,'Task 2');
		CellState[TObject(hChild),TObject(0)] := 1;
		hChild := InsertItem(h,Nil,'Task 3');
		CellState[TObject(hChild),TObject(0)] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1024
   | 
  
	  How can I change the font for the checked items 
	
		
			
 
 
// CellStateChanged event - Fired after cell's state has been changed.
procedure TWinForm1.AxGrid1_CellStateChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellStateChangedEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	DefaultItemHeight := 22;
	with (Columns.Add('Tasks') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with ConditionalFormats.Add('%CS0 = 1',Nil) do
	begin
		f := (ComObj.CreateComObject(ComObj.ProgIDToClassID('StdFont')) as stdole.StdFont);
		with f do
		begin
			Name := AxGrid1.Font.Name;
			Size := 12;
		end;
		Font := (f as stdole.StdFont);
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Nil,'Task 1');
		SelectItem[hChild] := True;
		hChild := InsertItem(h,Nil,'Task 2');
		CellState[TObject(hChild),TObject(0)] := 1;
		hChild := InsertItem(h,Nil,'Task 3');
		CellState[TObject(hChild),TObject(0)] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1023
   | 
  
	  How can I bold the checked items 
	
		
			
 
 
// CellStateChanged event - Fired after cell's state has been changed.
procedure TWinForm1.AxGrid1_CellStateChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellStateChangedEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('Tasks') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with ConditionalFormats.Add('%CS0 = 1',Nil) do
	begin
		Bold := True;
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Nil,'Task 1');
		SelectItem[hChild] := True;
		hChild := InsertItem(h,Nil,'Task 2');
		CellState[TObject(hChild),TObject(0)] := 1;
		hChild := InsertItem(h,Nil,'Task 3');
		CellState[TObject(hChild),TObject(0)] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1022
   | 
  
	  How can I change the foreground color for checked items 
	
		
			
 
 
// CellStateChanged event - Fired after cell's state has been changed.
procedure TWinForm1.AxGrid1_CellStateChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellStateChangedEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	SelBackMode := EXGRIDLib.BackModeEnum.exTransparent;
	with (Columns.Add('Tasks') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with ConditionalFormats.Add('%CS0 = 1',Nil) do
	begin
		ForeColor := $8080ff;
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Nil,'Task 1');
		SelectItem[hChild] := True;
		hChild := InsertItem(h,Nil,'Task 2');
		CellState[TObject(hChild),TObject(0)] := 1;
		hChild := InsertItem(h,Nil,'Task 3');
		CellState[TObject(hChild),TObject(0)] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1021
   | 
  
	  How can I change the background color for checked items (solid color) 
	
		
			
 
 
// CellStateChanged event - Fired after cell's state has been changed.
procedure TWinForm1.AxGrid1_CellStateChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellStateChangedEvent);
begin
	with AxGrid1 do
	begin
		Refresh();
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	SelBackMode := EXGRIDLib.BackModeEnum.exTransparent;
	with (Columns.Add('Tasks') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with ConditionalFormats.Add('%CS0 = 1',Nil) do
	begin
		BackColor := $8080ff;
	end;
	HeaderVisible := True;
	with Items do
	begin
		h := AddItem('Project');
		hChild := InsertItem(h,Nil,'Task 1');
		SelectItem[hChild] := True;
		hChild := InsertItem(h,Nil,'Task 2');
		CellState[TObject(hChild),TObject(0)] := 1;
		hChild := InsertItem(h,Nil,'Task 3');
		CellState[TObject(hChild),TObject(0)] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1020
   | 
  
	  How can I export the cell's state as well 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	with Columns do
	begin
		(Add('C1') as EXGRIDLib.Column).Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		(Add('C2') as EXGRIDLib.Column).FormatColumn := '1 index `A-Z`';
		(Add('C3') as EXGRIDLib.Column).FormatColumn := '100 index ``';
	end;
	with Items do
	begin
		AddItem('Item 1');
		CellState[TObject(AddItem('Item 2')),Nil] := 1;
		CellState[TObject(AddItem('Item 3')),Nil] := 1;
	end;
	EndUpdate();
	OutputDebugString( 'Export CSV Items including Check-State:' );
	BeginUpdate();
	with (Columns.Add('Check') as EXGRIDLib.Column) do
	begin
		Position := 0;
		FormatColumn := '%CS0';
	end;
	OutputDebugString( Export('',Nil) );
	Columns.Remove('Check');
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1019
   | 
  
	  Is it possible to customize the editor selection colour of the built in text editor, from standard blue to black 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	SelBackColor := Color.FromArgb(0,0,0);
	SelForeColor := Color.FromArgb(255,255,255);
	with (Columns.Add('Edit') as EXGRIDLib.Column).Editor do
	begin
		EditType := EXGRIDLib.EditTypeEnum.MaskType;
		Mask := ';;;rich';
	end;
	with Items do
	begin
		AddItem('');
		AddItem('Just a text');
		AddItem('');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1018
   | 
  
	  Is it possible to customize the editor selection colour of the built in dropdown editor, from standard blue to black 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	SelBackColor := Color.FromArgb(0,0,0);
	SelForeColor := Color.FromArgb(255,255,255);
	with (Columns.Add('DropDown') as EXGRIDLib.Column).Editor do
	begin
		AddItem(1,'This is just the first item',Nil);
		AddItem(2,'This is just the second item',Nil);
		AddItem(3,'This is just the third item',Nil);
		EditType := EXGRIDLib.EditTypeEnum.DropDownType;
		Mask := ';;;rich';
	end;
	with Items do
	begin
		AddItem('');
		AddItem('Just a text');
		AddItem('');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1017
   | 
  
	  The BeforeExpandItem event is fired when clicking the drop down filter button. What we can do to prevent that 
	
		
			
// BeforeExpandItem event - Fired before an item is about to be expanded (collapsed).
procedure TWinForm1.AxGrid1_BeforeExpandItem(sender: System.Object; e: AxEXGRIDLib._IGridEvents_BeforeExpandItemEvent);
begin
	with AxGrid1 do
	begin
		OutputDebugString( 'BeforeExpandItem' );
		OutputDebugString( e.item );
		OutputDebugString( 'ColumnFromPoint' );
		OutputDebugString( get_ColumnFromPoint(-1,-1) );
		OutputDebugString( 'ColumnFromPoint return -1, if the user clicks the +/- glitch, else it returns the index of the column where the click occurs.' );
		Items.InsertItem(e.item,Nil,'new child');
	end
end;
with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with Columns do
	begin
		(Add('Items') as EXGRIDLib.Column).DisplayFilterButton := True;
	end;
	with Items do
	begin
		ItemHasChildren[InsertItem(Nil,Nil,'Group 1')] := True;
		ItemHasChildren[InsertItem(Nil,Nil,'Group 2')] := True;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1016
   | 
  
	  How do I change the drop down filter icon/button (black) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQg' + 
	'mPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThd' + 
	'r4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA');
	end;
	set_Background(EXGRIDLib.BackgroundPartEnum.exCursorHoverColumn,$ffffffff);
	set_Background(EXGRIDLib.BackgroundPartEnum.exHeaderFilterBarButton,$1000000);
	set_Background(EXGRIDLib.BackgroundPartEnum.exBackColorFilter,$10000);
	set_Background(EXGRIDLib.BackgroundPartEnum.exForeColorFilter,$ffffff);
	set_Description(EXGRIDLib.DescriptionTypeEnum.exFilterBarExclude,'<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>');
	HeaderAppearance := EXGRIDLib.AppearanceEnum.None2;
	BackColorHeader := Color.FromArgb(0,0,0);
	ForeColorHeader := Color.FromArgb(255,255,255);
	HeaderVisible := True;
	with (Columns.Add('Filter') as EXGRIDLib.Column) do
	begin
		FilterList := Integer(EXGRIDLib.FilterListEnum.exShowExclude) Or Integer(EXGRIDLib.FilterListEnum.exShowCheckBox);
		DisplayFilterButton := True;
		AllowSort := False;
		AllowDragging := False;
	end;
	with Items do
	begin
		AddItem('One');
		AddItem('Two');
		AddItem('Three');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1015
   | 
  
	  How do I change the drop down filter icon/button (white) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(2,'gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgANJ' + 
	'0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8YN' + 
	'YuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4h' + 
	'hKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mgb' + 
	'hOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhWB' + 
	'MJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI=');
		Add(1,'CP:2 -4 -4 2 4');
	end;
	set_Background(EXGRIDLib.BackgroundPartEnum.exHeaderFilterBarButton,$1000000);
	set_Background(EXGRIDLib.BackgroundPartEnum.exCursorHoverColumn,BackColor);
	HeaderAppearance := EXGRIDLib.AppearanceEnum.None2;
	HeaderHeight := 24;
	BackColorHeader := Color.FromArgb(255,255,255);
	HeaderVisible := True;
	with (Columns.Add('Filter') as EXGRIDLib.Column) do
	begin
		DisplayFilterButton := True;
		AllowSort := False;
		AllowDragging := False;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1014
   | 
  
	  How can I draw a solid frame around the the focusing item 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	SingleSel := False;
	DefaultItemHeight := 20;
	with VisualAppearance do
	begin
		RenderType := -1;
		Add(1,'gBFLBCJwBAEHhEJAAEhABOkGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBKUQSDqEYyjGLIXAWCYSAAMIwDKAUEwpFAZBhgeDYMiSNoYDJCM4wHI' + 
	'URRJFCUJSGWQpTgSIgyT5HFIxXKoASbJabZLhWS6EpWOotTbIQQRYCkEyfKKfZyGURZQqOKA1DBZErWTJESRFJqLazgO4LAhyQYrVgAErzVKVCRNOqbJzADApdpGQJTU' + 
	'LDNTQHRFIyhOSnIRrWbMAhid6JUZiVT4dBOIYhSYANAqCwLFqrDJmWrpV5WZjlZ47V6BdAyXJsIrmFJEXaOGhyDDlGybSDZYryfZhUziUw4XjbWwZDqPF6DKTTdSGLRE' + 
	'E8WZVlURZvDaep3C+AY8kAYRgGCCBJECUhjDoHROEYWgoAGTQ1CEEx9lGMY0CQUYSnuZQDBGBYFlOH5+H+igGAKAJgEgFgGgGVgDn4CoCmCSA2A6A5hAgDgQgSYRIE4E' + 
	'oFGGCBiBeBhhkgPgbgcYgICoH4IGGWIOCSBhiGiHgVgoYooFoAoLGIWI+DCCgjCiTgrgII4ImYOoOmOSJ2AYOpWlQDQBICA=');
	end;
	ShowFocusRect := True;
	set_Background(EXGRIDLib.BackgroundPartEnum.exShowFocusRect,$1000000);
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('P1') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1013
   | 
  
	  The frame around the focusing item is not very clear. Can I show it larger or more cleared (sample 2) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	SingleSel := False;
	DefaultItemHeight := 20;
	ShowFocusRect := True;
	with VisualAppearance do
	begin
		RenderType := -1;
		Add(2,'gBFLBCJwBAEHhEJAAEhABPEGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBKUQSDqEYyjGLIXAWCYSAAMIwDKAUEwpFAZBhgeCRUgyJI3RgMUIzVA' + 
	'cRRFEiUJQlIZZCjOAw0SIMU7xZRcNxsACnaZnCR4NiuRYiUhOcqzRIQIQ4CiEahqOgJbDUJYwWZKAyjBY8XTZFCSJCpeJ6egOc5jRxQUp1WAEXx3GSsJKvCZ5cADBY+V' + 
	'LQNS0JBtMSTKSLaiuWoIJqCPaDRheWKQJh1NSnLqEcjyYANDxDCZlWzAYxWTZ2Uz7N7PbB0HY4DyPGKZYrfESVRbQcZNS6nNigPI9XhfGq6VjRe63ZaOaYpWrnOJqTRW' + 
	'jOKYujWdZ2BGO5lkuBAAkmcQkDmDBEAwEQJCgGhMGcQ4pkiSxGAAOYmkQIhvkYNg2gSCgyj+LI4GIMIwF2XQoAYAoAmASAWAaAZgggJgKFiT54DYDoDmECBGBKBJgGgT' + 
	'gWgWYRoFYGIGmGOBqByB5hCgegggiYJYgoJIICIaIeByChiigYgsgsYYYBYMIKCMKJOCuDRjGiOgLg6Y5InYPoPmQCAkmsXAQDQBCAg=');
		Add(3,'CP:2 -3 0 3 0');
	end;
	set_Background(EXGRIDLib.BackgroundPartEnum.exShowFocusRect,$3010101);
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('P1') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1012
   | 
  
	  The frame around the focusing item is not very clear. Can I show it larger or more cleared (sample 1) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	SingleSel := False;
	ShowFocusRect := True;
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAEhABHoDg6AADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBIZQ7BKNIxjSJwFiCCQwSDKEjyCKcGRHF6MI6gOYpCgOIYjRJNIASVA' + 
	'ceAAGaUZrjSgobjmOYhAJCLqhYIgASXJqLaBlOCaAieSc+QhjQJIJoeCZXU5TFg1BTsOhqEqcRiseaRVDCaIJWzbdYWLDdNQHHKYLjnWorbpSJZ5XjNEySDQkMS9PrEJ' + 
	'7vST8FBCdAABLJUB2BR9RwxRafKpnWwJDpmCaOQLXEB5DK1PyVMTKYrtGy7GrIAJxWxbV4UHh+QABOzIMAvHKJMwvHYcUZne5XVLeF41HbONogPaJZyIAK2cLROq6Xo7' + 
	'GEcJZEcLASB4DwvgWUZlE6AQQhKAYkkYdA6hyDIwHgSoqFwQgmnsYxjGgSIiBOTpSEiAwRgOJI7j4JAHA6U5wm0MpPlOBIjD8TZiGYCICiCGAuA6AxhAgMgSgOYQ4DYB' + 
	'g/g6cw1n+ABOmMMJ9DmCwjnScw4RsVJngkYh4hoKIKmKKI2CmC5ikiQgqgiT5jhyMw8g4QwIn0OIKEiCJhD8DwTGyfA7k0WQOEWEQkGkJhIhKZB5DYSoTiSCQEn4PQOC' + 
	'OXJcCeIJjliaIQk0aRyF4O5llmAhfhgZhJg4ZoYiaAxYn4PZOhOZJaCUZYTiYQw1mcOZUm+HQnHmWh4h6Z4pnYeYfk0eYsmqG4nAgNJ2DqD5DkCWoiGiOgqgyI5omoRo' + 
	'NiSaQKFKEojCaM4ugSFhOjkAJcieKgDkaH4oioGoOiaKRqgqEoqDddwyhuAxPgOMJ8DyDZqk6NYtCsapmjiLprHqdo6i+K5K1oPhOlqPgKD4DpjnII4yiOewuk6MxtAs' + 
	'MpSjObQ7EaT4wk6ewYn0PgPAiCJkjeLgDk6X44i4G4OmaORuguEpqDkLAzkaWg+E8GIUmaPIvEOVpzj2Lxbl6eo+G+S5in4OYPmOaJyjuTwjnYWpBg6DAjAqQZwkwJwN' + 
	'kKcJsEcEJCDBEpaD6Dw8BiapGjGSgfB2RpxmyBwgkicZ8haBw/g+M5TBcPQPlOXJskscp8jsMJMnMLJXDGTZzEyYw2kwMoDlcFw9i2M4/EGUJPg0CxFlENBtCcSJSnQf' + 
	'Q0m+SgPHsaJ7lALZLG6XZVHWDRfFqVY1k0ZxdladYTnifJUGaeAWAeMnSGcGWgBObJ3lWbwdjKW5cHcTZPHaLkN4GxXDlFqFsA4uRbBOGAFAEIzAsDEFOBkfYqR4D6AO' + 
	'BEYo8QuBvAmMceInBDgcD0JwOIqQyJ1DMAwG4IANDnHSMoK4QhOgMBGNEIQvQWAdGenETIswGiddsAAQAgCAgA==');
		Add(2,'gBFLBCJwBAEHhEJAAEhABeEGACAADACAxRDgMQBQKAAzAJBIYhkGYYYCgMZRUDGCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADDFIBQSLAYROGSDJBGODJDjWGIeQLOEhQHI' + 
	'MRxPE6UYLhWYpBDKPYcUbGc7yBBMVwGf59XzACoKSheQIVSDQkw6Fo6NYhAxHALyNRkBy8f60KjtGpodDUJYvW5JYyjBZ8EznOqbJBkeJ7BgOe5NQjaD72VgdWQJFSWJ' + 
	'ajWYYJDOJY2ZAAE5TVINEwxJbDaylChIdxaF6WAzZEBhBYoATPNLBMrhWqKDw2XaQWBCOgwHYeR5LU7BdRwbIrRq2eAAXbcVyXfDddZlBK+QA0SK9lRVTKvJZmKgBWw1' + 
	'COSxmAAGw4kcNx1iKFBiCAfQsG8lJemucg7nsXpUHOOxrm+DI3jOH4XAOBx2nscw0j2HhPG4L5uGEVIECQCBCEUAYkGMHQHFGSBlGaAxkEgQgTGCVBsDYQhCgQJZrHKU' + 
	'ggGEShkFGNgIlsNpPnMHJHD+TADAIJIJiIWIeCqChikiIgmgiD5zHyXxgiACJKCuC4jHiZgtg6I4IlkCQwkwOIonMPJjEkFhGhGZBpA4KoMBCGJuEiE5lAkGg7hMY4JE' + 
	'YVoUCUNAOE6FZl0KWQACWOR2GKF5mBmChchkJRZhoXYaCKKYqGuDglEmNhuhWZpIiYc4dCcCRqGmHZlgm2YxAwSQKESHwkFkKgpiAIAIH4PIimOOg2DiChoiQJRRD+TZ' + 
	'DHCfwyAyCgyg+JpiioYJ/DgDgIlECQ6lwRAEICA=');
		Add(3,'CP:2 -2 0 2 0');
	end;
	(GetOcx() as EXGRIDLib.Grid).SelBackColor := $1000000;
	SelForeColor := Color.FromArgb(0,0,0);
	set_Background(EXGRIDLib.BackgroundPartEnum.exShowFocusRect,$3ff0000);
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exLinesAtRoot;
	with (Columns.Add('P1') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Nil,'Child 1');
		InsertItem(h,Nil,'Child 2');
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1011
   | 
  
	  I have a column right-aligned. How can I display its check box aligned to the right, as it appears to the left of the cell's caption 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	ColumnAutoResize := True;
	DrawGridLines := EXGRIDLib.GridLinesEnum.exVLines;
	with Columns do
	begin
		with (Add('Left') as EXGRIDLib.Column) do
		begin
			AllowSizing := False;
			Width := 96;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			FormatColumn := '0 pos `A-Z`';
		end;
		with (Add('Center') as EXGRIDLib.Column) do
		begin
			HeaderAlignment := EXGRIDLib.AlignmentEnum.CenterAlignment;
			Alignment := HeaderAlignment;
			AllowSizing := False;
			Width := 96;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			FormatColumn := '0 pos `A-Z`';
		end;
		with (Add('Right') as EXGRIDLib.Column) do
		begin
			HeaderAlignment := EXGRIDLib.AlignmentEnum.RightAlignment;
			Alignment := HeaderAlignment;
			AllowSizing := False;
			Width := 96;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			FormatColumn := '0 pos `A-Z`';
			Def[EXGRIDLib.DefColumnEnum.exCellDrawPartsOrder] := 'caption,check,icon,icons,picture';
		end;
		Add('');
	end;
	with Items do
	begin
		CellState[TObject(AddItem('Item 1')),TObject(3)] := 1;
		CellState[TObject(AddItem('Item 2')),TObject(2)] := 1;
		CellState[TObject(AddItem('Item 3')),TObject(1)] := 1;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1010
   | 
  
	  Can I display the column's multiple-lines caption vertically oriented (method 2) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	HeaderHeight := 48;
	ColumnAutoResize := True;
	with Columns do
	begin
		Add('And others ...');
		with (Add('') as EXGRIDLib.Column) do
		begin
			HTMLCaption := 'First Column';
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Def[EXGRIDLib.DefColumnEnum.exCellPaddingLeft] := TObject(8);
			Position := 0;
		end;
		with (Add('') as EXGRIDLib.Column) do
		begin
			HTMLCaption := '<c><b>Second Column';
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Def[EXGRIDLib.DefColumnEnum.exCellPaddingLeft] := TObject(8);
			Position := 1;
		end;
		with (Add('') as EXGRIDLib.Column) do
		begin
			HTMLCaption := '<r>Third Column';
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Def[EXGRIDLib.DefColumnEnum.exCellPaddingLeft] := TObject(8);
			Position := 2;
		end;
	end;
	with Items do
	begin
		CellState[TObject(AddItem('Item 1')),TObject(3)] := 1;
		CellState[TObject(AddItem('Item 2')),TObject(2)] := 1;
		CellState[TObject(AddItem('Item 3')),TObject(1)] := 1;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1009
   | 
  
	  Can I display the column's multiple-lines caption vertically oriented (method 1) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	HeaderHeight := 48;
	HeaderSingleLine := False;
	ColumnAutoResize := True;
	with Columns do
	begin
		Add('And others ...');
		with (Add('First Column') as EXGRIDLib.Column) do
		begin
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Def[EXGRIDLib.DefColumnEnum.exCellPaddingLeft] := TObject(8);
			Position := 0;
		end;
		with (Add('Second Column') as EXGRIDLib.Column) do
		begin
			HeaderBold := True;
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Def[EXGRIDLib.DefColumnEnum.exCellPaddingLeft] := TObject(8);
			Position := 1;
		end;
		with (Add('Third Column') as EXGRIDLib.Column) do
		begin
			HeaderVertical := True;
			Width := 36;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Def[EXGRIDLib.DefColumnEnum.exCellPaddingLeft] := TObject(8);
			Position := 2;
		end;
	end;
	with Items do
	begin
		CellState[TObject(AddItem('Item 1')),TObject(3)] := 1;
		CellState[TObject(AddItem('Item 2')),TObject(2)] := 1;
		CellState[TObject(AddItem('Item 3')),TObject(1)] := 1;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1008
   | 
  
	  Can I display the column's caption vertically oriented (method 2) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	HeaderHeight := 48;
	ColumnAutoResize := True;
	with Columns do
	begin
		Add('And others ...');
		with (Add('') as EXGRIDLib.Column) do
		begin
			HTMLCaption := 'First';
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Position := 0;
		end;
		with (Add('') as EXGRIDLib.Column) do
		begin
			HTMLCaption := '<c><b>Second';
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Position := 1;
		end;
		with (Add('') as EXGRIDLib.Column) do
		begin
			HTMLCaption := '<r>Third';
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Position := 2;
		end;
	end;
	with Items do
	begin
		CellState[TObject(AddItem('Item 1')),TObject(3)] := 1;
		CellState[TObject(AddItem('Item 2')),TObject(2)] := 1;
		CellState[TObject(AddItem('Item 3')),TObject(1)] := 1;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1007
   | 
  
	  Can I display the column's caption vertically oriented (method 1) 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	HeaderHeight := 48;
	ColumnAutoResize := True;
	with Columns do
	begin
		Add('And others ...');
		with (Add('First') as EXGRIDLib.Column) do
		begin
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Position := 0;
		end;
		with (Add('Second') as EXGRIDLib.Column) do
		begin
			HeaderBold := True;
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Position := 1;
		end;
		with (Add('Third') as EXGRIDLib.Column) do
		begin
			HeaderVertical := True;
			Width := 20;
			AllowSizing := False;
			Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
			Position := 2;
		end;
	end;
	with Items do
	begin
		CellState[TObject(AddItem('Item 1')),TObject(3)] := 1;
		CellState[TObject(AddItem('Item 2')),TObject(2)] := 1;
		CellState[TObject(AddItem('Item 3')),TObject(1)] := 1;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1006
   | 
  
	  How do I automatically bold items being checked 
	
		
			
 
 
// CellStateChanged event - Fired after cell's state has been changed.
procedure TWinForm1.AxGrid1_CellStateChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellStateChangedEvent);
begin
end;
with AxGrid1 do
begin
	BeginUpdate();
	SelBackMode := EXGRIDLib.BackModeEnum.exTransparent;
	with ConditionalFormats.Add('%CS0','check') do
	begin
		Bold := True;
	end;
	(Columns.Add('Items') as EXGRIDLib.Column).Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
	(Columns.Add(AxGrid1.ConditionalFormats.Item['check'].Expression) as EXGRIDLib.Column).FormatColumn := AxGrid1.ConditionalFormats.Item['check'].Expression;
	with Items do
	begin
		AddItem('Item 1');
		CellState[TObject(AddItem('Item 2')),TObject(0)] := 1;
		AddItem('Item 3');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1005
   | 
  
	  How can I use the CellState with ConditionalFormat/ComputedField/FormatColumn 
	
		
			
 
 
// CellStateChanged event - Fired after cell's state has been changed.
procedure TWinForm1.AxGrid1_CellStateChanged(sender: System.Object; e: AxEXGRIDLib._IGridEvents_CellStateChangedEvent);
begin
end;
with AxGrid1 do
begin
	BeginUpdate();
	LinesAtRoot := EXGRIDLib.LinesAtRootEnum.exGroupLinesInsideLeaf;
	SelBackMode := EXGRIDLib.BackModeEnum.exTransparent;
	with (Columns.Add('Items') as EXGRIDLib.Column) do
	begin
		Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
		PartialCheck := True;
	end;
	with (Columns.Add('Format') as EXGRIDLib.Column) do
	begin
		FormatColumn := '%CS0';
		Caption := FormatColumn;
		Def[EXGRIDLib.DefColumnEnum.exCellForeColor] := TObject(8421504);
		Def[EXGRIDLib.DefColumnEnum.exHeaderForeColor] := Def[EXGRIDLib.DefColumnEnum.exCellForeColor];
	end;
	with Items do
	begin
		h := AddItem('Root');
		InsertItem(h,Nil,'Item 1');
		CellState[TObject(InsertItem(h,Nil,'Item 2')),TObject(0)] := 1;
		CellState[TObject(InsertItem(h,Nil,'Item 3')),TObject(0)] := 1;
		ExpandItem[h] := True;
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1004
   | 
  
	  How can I use the CellData with ConditionalFormat/ComputedField/FormatColumn 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	Columns.Add('Items');
	with (Columns.Add('Format') as EXGRIDLib.Column) do
	begin
		FormatColumn := '%CD0';
		Caption := FormatColumn;
		Def[EXGRIDLib.DefColumnEnum.exCellForeColor] := TObject(8421504);
		Def[EXGRIDLib.DefColumnEnum.exHeaderForeColor] := Def[EXGRIDLib.DefColumnEnum.exCellForeColor];
	end;
	with Items do
	begin
		CellData[TObject(AddItem('Item 1')),TObject(0)] := TObject(1234);
		CellData[TObject(AddItem('Item 2')),TObject(0)] := 'this is just an user data';
		CellData[TObject(AddItem('Item 3')),TObject(0)] := '1/1/2001';
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1003
   | 
  
	  How can I use the CellValue/CellCaption with ConditionalFormat/ComputedField/FormatColumn 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	with (Columns.Add('Items') as EXGRIDLib.Column) do
	begin
		with Editor do
		begin
			EditType := EXGRIDLib.EditTypeEnum.DropDownListType;
			AddItem(1,'Item 1',Nil);
			AddItem(2,'Item 2',Nil);
			AddItem(3,'Item 3',Nil);
		end;
	end;
	with (Columns.Add('Format') as EXGRIDLib.Column) do
	begin
		FormatColumn := '%0';
		Caption := FormatColumn;
		Def[EXGRIDLib.DefColumnEnum.exCellForeColor] := TObject(8421504);
		Def[EXGRIDLib.DefColumnEnum.exHeaderForeColor] := Def[EXGRIDLib.DefColumnEnum.exCellForeColor];
		AllowSizing := False;
	end;
	with (Columns.Add('Format') as EXGRIDLib.Column) do
	begin
		FormatColumn := '%C0';
		Caption := FormatColumn;
		Def[EXGRIDLib.DefColumnEnum.exCellForeColor] := TObject(8421504);
		Def[EXGRIDLib.DefColumnEnum.exHeaderForeColor] := Def[EXGRIDLib.DefColumnEnum.exCellForeColor];
		AllowSizing := False;
	end;
	with Items do
	begin
		AddItem(TObject(1));
		CellValue[TObject(AddItem(TObject(0))),TObject(0)] := TObject(2);
		AddItem(TObject(2));
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1002
   | 
  
	  Can I display the radio-button with a solid color 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	set_RadioImage(False,32699122);
	set_RadioImage(True,16777216);
	(Columns.Add('Check') as EXGRIDLib.Column).Def[EXGRIDLib.DefColumnEnum.exCellHasRadioButton] := TObject(True);
	with Items do
	begin
		AddItem('Radio 1');
		CellState[TObject(AddItem('Radio 2')),TObject(0)] := 1;
		AddItem('Radio 1');
	end;
	EndUpdate();
end
			 
		 
	 
   | 
  | 
	1001
   | 
  
	  Can I display the check-box with a solid color 
	
		
			
 
 
with AxGrid1 do
begin
	BeginUpdate();
	set_CheckImage(EXGRIDLib.CheckStateEnum.Unchecked,32699122);
	set_CheckImage(EXGRIDLib.CheckStateEnum.Checked,16777216);
	(Columns.Add('Check') as EXGRIDLib.Column).Def[EXGRIDLib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
	with Items do
	begin
		AddItem('Check 1');
		CellState[TObject(AddItem('Check 2')),TObject(0)] := 1;
		AddItem('Check 3');
	end;
	EndUpdate();
end
			 
		 
	 
   |